Dekoratives Banner

File Fun


    This script shows how to open files, open projects, collect names of the Comps in the scene, prompt a user for where to write a file, write to a text file, and save the text file. It is useful only as an example of how the individual methods and attributes operate; it doesn't serve any useful production purpose.

    // First, close any project that might be open.
    if (app.project != null){
        // 3 choices here, CloseOptions.DO_NOT_SAVE_CHANGES,
        // CloseOptions.PROMPT_TO_SAVE_CHANGES, and CloseOptions.SAVE_CHANGES
        app.project.close(CloseOptions.DO_NOT_SAVE_CHANGES);
    }
    // Prompt the user to pick a project file:
    // First argument is a prompt, second is the file type.
    var pfile = fileGetDialog("Select a project file to open", "EggP aep");
    if (pfile == null){
        alert("No project file selected. Aborting.");
    } else {
        // Open that file. It becomes the current project.
        var my_project = app.open( pfile );
        // Build a default text file name from the project's filename.
        // Remove the ".aep" file extension (if present), then add
        //_compnames.txt.
        var default_text_filename;
        var suffix_index = pfile.name.lastIndexOf(".aep");
        if (suffix_index != -1){
            default_text_filename = pfile.name.substring(0,suffix_index);
        }else {
            default_text_filename = pfile.name;
        }
        default_text_filename += "_compnames.txt";
        // Create another file object for the file we'll write out.
        // First argument is the prompt, second is a default file name, third is
        //the file type.
        var text_file = filePutDialog("Select a file to output your results",
        default_text_filename, "TEXT txt");
        if (text_file == null){
            alert("No output file selected. Aborting.");
        } else {
            // opens file for writing. First argument is mode ("w" for writing),
            // second argument is file type (for mac only),
            // third argument is creator (mac only, "????" is no specific app).
            text_file.open("w","TEXT","????");
            // Write the heading of the file:
            text_file.writeln("Here is a list of all the comps in " +
            pfile.name);
            text_file.writeln();
            for (var i = 1; i <= app.project.numItems; i++){
                if (app.project.item(i) instanceof CompItem){
                    text_file.writeln(app.project.item(i).name);
                }
            }
           
            text_file.close();
           
            alert("All done!");
        }
    }